﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;


namespace WPFServices.Services
{
    public static class UserService
    {
        public static bool CheckPassUser(USER u)
        {
            try
            {
                using (var db = new VLXDKH_QLKEntities())
                {
                    var cRet = db.USERS.Where(x=>x.ROLES=="admin").Select(x=>x.PASSWORDS).FirstOrDefault();
                    return u.PASSWORDS == cRet;
                }
            }
            catch (Exception)
            {
                throw new Exception("Không thể lấy danh sách người dùng");
            }
          
        }

        public static USER GetUser(int userID)
        {
            try
            {
                using (var db = new VLXDKH_QLKEntities())
                {
                    var user = db.USERS.Where(u => u.ID_USER_AUTO == userID).Select(u => u).FirstOrDefault();
                    return user;
                }
            }
            catch (Exception)
            {
                throw new Exception("Không tìm thấy User");
            }

        }

        public static IList<USER> GetListUser()
        {
            try
            {
                using (var db = new VLXDKH_QLKEntities())
                {
                    var cRet = db.USERS.ToList();
                    return cRet;
                }
            }
            catch (Exception)
            {
                throw new Exception("Không thể lấy danh sách user");
            }

        }
        public static int CreateUser(USER mUser)
        {
            try
            {
                using (var db = new VLXDKH_QLKEntities())
                {
                    mUser.ROLES = "user";
                    db.USERS.Add(mUser);
                    db.SaveChanges();
                    var idRet = mUser.ID_USER_AUTO;
                    return idRet;
                }
            }
            catch (Exception)
            {

                throw new Exception("Không thể tạo User.");
            }
        }
        public static void UpdateUser(USER mUser)
        {
            try
            {
                using (var db = new VLXDKH_QLKEntities())
                {
                    var curUser = db.USERS.FirstOrDefault(x => x.ID_USER_AUTO == mUser.ID_USER_AUTO);
                    if (curUser != null)
                    {
                        curUser.ID_USER = mUser.ID_USER;
                        curUser.PASSWORDS = mUser.PASSWORDS;
                        curUser.USERNAME = mUser.USERNAME;
                        db.USERS.Attach(curUser);
                        db.Entry(curUser).State = EntityState.Modified;
                    }
                    db.SaveChanges();
                }
            }
            catch (Exception)
            {
                throw new Exception("Không thể cập nhật người dùng.");
            }
        }

    }
}
